package com.nptever.webcamera.impl.request;

import javax.xml.bind.annotation.*;

/**
 * @author ZhangKai
 * @version 1.0
 * @decription
 * @date 2018/11/20 16:44
 */
@XmlAccessorType(XmlAccessType.FIELD)
public class VideoConfiguration {

    @XmlAttribute
    private String token = "VideoStream0Token";

    @XmlElement(namespace = "http://www.onvif.org/ver10/schema")
    private String Name = "VideoStream0";

    @XmlElement(namespace = "http://www.onvif.org/ver10/schema")
    private String UseCount = "1";

    @XmlElement(namespace = "http://www.onvif.org/ver10/schema")
    private String Encoding = "H264";

    @XmlElements(
            @XmlElement(name = "Resolution", type = Resolution.class, namespace = "http://www.onvif.org/ver10/schema")
    )
    private Resolution resolution;

    @XmlElement(namespace = "http://www.onvif.org/ver10/schema")
    private String Quality = "6";

    @XmlElements(
            @XmlElement(name = "RateControl", type = RateControl.class, namespace = "http://www.onvif.org/ver10/schema")
    )
    private RateControl rateControl;

    @XmlElements(
            @XmlElement(name = "H264", type = H264.class, namespace = "http://www.onvif.org/ver10/schema")
    )
    private H264 h264;

    @XmlElements(
            @XmlElement(name = "Multicast", type = Multicast.class, namespace = "http://www.onvif.org/ver10/schema")
    )
    private Multicast multicast;

    @XmlElement(namespace = "http://www.onvif.org/ver10/schema")
    private String SessionTimeout = "PT60S";

    public void setToken(String token) {
        this.token = token;
    }

    public void setName(String name) {
        Name = name;
    }

    public void setUseCount(String useCount) {
        UseCount = useCount;
    }

    public void setEncoding(String encoding) {
        Encoding = encoding;
    }

    public void setResolution(Resolution resolution) {
        this.resolution = resolution;
    }

    public void setQuality(String quality) {
        Quality = quality;
    }

    public void setRateControl(RateControl rateControl) {
        this.rateControl = rateControl;
    }

    public void setH264(H264 h264) {
        this.h264 = h264;
    }

    public void setMulticast(Multicast multicast) {
        this.multicast = multicast;
    }

    public void setSessionTimeout(String sessionTimeout) {
        SessionTimeout = sessionTimeout;
    }
}
